perm filename LOADER.DIF[UCI,SYS]1 blob sn#077568 filedate 1973-12-14 generic text, type T, neo UTF8

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

******** ILOAD.MAC **** PAGE 1
1)	COMMENT ⊗   VALID 00117 PAGES
1)	C REC  PAGE   DESCRIPTION
1)	C00001 00001
1)	C00011 00002		SUBTTL	RP GRUEN/NGP/WFW/DMN  V.052	7-SEP-70
1)	C00014 00003	DEFAULT ASSEMBLY SWITCH SETTINGS ++ lisp switch here ++
1)	C00017 00004	ACCUMULATOR ASSIGNMENTS
1)	C00019 00005	FLAGS	F(0 - 17)
1)	C00022 00006	
1)	C00024 00007	IFE K,<	TITLE	LOADER - LOADS MACRO AND FORTRAN FOUR>
1)	C00026 00008	CCL INITIALIZATION
1)	C00029 00009	RPGS3:	MOVEI	CTLBUF	
1)	C00031 00010	NORMAL INITIALIZATION
1)	C00036 00011		MOVE W,[XWD LINKTB,LINKTB+1]
1)	C00037 00012	IFN RPGSW,<JRST LD2Q>
1)	C00042 00013		MOVE	T,@CTLIN+1	AND CHECK FOR LINE #
1)	C00043 00014		TRNE	T,1
1)	C00044 00015	CHARACTER HANDLING
1)	C00047 00016	OUTPUT SPECIFICATION DELIMITER <=> OR <LEFT ARROW>
1)	C00050 00017	RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)
1)	C00053 00018	
1)	C00056 00019	TERMINATION
1)	C00058 00020	IFE L,<		NONE OF THIS NEEDED FOR LISP
1)	C00061 00021	PRINT FINAL MESSAGE
1)	C00066 00022	SET UP JOBDAT
1)	C00071 00023	BLT SYMBOL TABLE INTO HIGH SEGMENT
1)	C00073 00024	NOBLT:	HRRZ	Q,HILOW	GET HIGHEST LOC LOADED
1)	C00075 00025	WRITE CHAIN FILES
1)	C00078 00026	SPECIAL CHAINB
1)	C00082 00027	SMTBFX:	TLNE N,PPCSW	IF NOT CUTTING BACK SYMBOL TABLE
1)	C00087 00028	EXPAND CORE
1)	C00089 00029	
1)	C00090 00030	SWITCH HANDLING
1)	C00091 00031	DISPATCH TABLE FOR SWITCHES
1)	C00095 00032	 PAIRED SWITCHES ( +,-)
1)	C00097 00033	IFN REENT,<
1)	C00099 00034	SWITCH MODE NUMERIC ARGUMENT
1)	C00101 00035	ATTEMPT TO CHAIN WITH SPECIFIED HALF OF JOBCHN = 0
1)	C00102 00036	CHARACTER CLASSIFICATION TABLE DESCRIPTION:
1)	C00104 00037	BYTE POINTERS TO CHARACTER CLASSIFICATION TABLE
1)	C00106 00038	INITIALIZE LOADING OF A FILE
1)	C00109 00039	LIBRARY SEARCH CONTROL AND LOADER CONTROL
1)	C00112 00040		LIB CONTROLS THE LIBRARY SEARCH OF ONE FILE
1)	C00114 00041	IFN SAILSW,<
1)	C00117 00042	LDDT LOADS <SYS:DDT.REL> AND SETS SYMSW
1)	C00120 00043	EOF TERMINATES LOADING OF A FILE
1)	C00122 00044	LOAD SUBROUTINE
1)	C00125 00045	LOAD PROGRAMS AND DATA (BLOCK TYPE 1)

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

1)	C00128 00046	LOAD SYMBOLS (BLOCK TYPE 2)
1)	C00130 00047		LOCAL SYMBOL
1)	C00131 00048		GLOBAL DEFINITION MATCHES REQUEST
1)	C00134 00049	
1)	C00137 00050	FIXWL:	HRLZ	T,W		UPDATE VALUE OF LEFT HALF
1)	C00139 00051	PATCH VALUES INTO CHAINED REQUEST
1)	C00141 00052	HIGH-SEGMENT (BLOCK TYPE 3)
1)	C00144 00053	SETSEG:	TRZ	F,NOHI!SEGFL	ALLOW HI-SEG
1)	C00145 00054	HIGHEST RELOCATABLE POINT (BLOCK TYPE 5)
1)	C00150 00055		HRRZ 	C,R	SET UP C AGAIN
1)	C00151 00056	EXPAND HIGH SEGMENT
1)	C00153 00057	PROGRAM NAME (BLOCK TYPE 6)
1)	C00156 00058	COMPILER TYPE - DO SPECIAL FUNCTION FOR IT
1)	C00157 00059	STARTING ADDRESS (BLOCK TYPE 7)
1)	C00158 00060	ONE PASS LOCAL DEFINITION (BLOCK TYPE 10)
1)	C00160 00061	LVAR FIX-UP (BLOCK TYPE 13)
1)	C00163 00062	FAIL LOADER
1)	C00168 00063	(NOTE THIS IS JUST A STANDARD GLOBAL REQUEST)
1)	C00169 00064			SATISFIED)
1)	C00170 00065			THE SYMBOL SHOULD BE STORED
1)	C00171 00066	IFN FAILSW,<
1)	C00174 00067	HANDLE OPERANDS. THIS GETS COMPLICATED BECAUSE OF THE PRESENCE OF
1)	C00176 00068	HAVE ENOUGH OPERANDS FOR THE CURRENT OPERATOR
1)	C00179 00069	FINALLY WE GET TO STORE THIS MESS
1)	C00181 00070	ALSTR1:	IFN L,<CAMGE V,RINITL
1)	C00183 00071	POLSAT:	PUSH P,C	SAVE SYMBOL
1)	C00185 00072	PSAT2:	HRL C,HDSAV	GET FIXUP NUMBER
1)	C00188 00073	STRSAT:	MOVE W,C	GET VALUE TO STORE IN W
1)	C00189 00074	LIBRARY INDEX (BLOCK TYPE 14)
1)	C00192 00075	INDEX4:	ADDM	T,ABUF1
1)	C00196 00076	THSBLK:	SUB	A,LSTBLK	GET WORD DIFFERENCE
1)	C00198 00077	ALGOL OWN BLOCK (TYPE 15)
1)	C00201 00078	SAIL BLOCK TYPE 15
1)	C00203 00079	SYMBOL TABLE SEARCH SUBROUTINES
1)	C00205 00080	RELOCATION AND BLOCK INPUT
1)	C00207 00081	PRINT STORAGE MAP SUBROUTINE
1)	C00212 00082	PRMP1A:	PUSHJ	P,TAB
1)	C00216 00083	LIST UNDEFINED AND MULTIPLY DEFINED GLOBALS
1)	C00218 00084	ENTER FILE ON AUXILIARY OUTPUT DEVICE
1)	C00220 00085	PRINT SUBROUTINES
1)	C00221 00086	
1)	C00222 00087		ACCUMULATORS USED: Q,T,D
1)	C00224 00088	SYMBOL PRINT - RADIX 50
1)	C00226 00089	
1)	C00227 00090	ERROR MESSAGE PRINT SUBROUTINE
1)	C00229 00091	ERRPT8:	TLO	F,FCONSW	INSURE TTY OUTPUT
1)	C00230 00092	INPUT - OUTPUT INTERFACE
1)	C00232 00093	IMPURE CODE

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

1)	C00233 00094	DATA STORAGE
1)	C00235 00095	PT1:	BLOCK 1
1)	C00237 00096	BUFFER HEADERS AND HEADER HEADERS
1)	C00239 00097	FORTRAN DATA STORAGE
1)	C00241 00098	REMAP UUO
1)	C00243 00099	LISP LOADER
1)	C00244 00100	 FORTRAN FOUR LOADER
1)	C00246 00101	PROCESS TABLE ENTRIES
1)	C00248 00102	STORE WORD AND SET BIT TABLE
1)	C00251 00103	PROCESS END CODE WORD
1)	C00256 00104	
1)	C00258 00105	BEGIN HERE PASS2 TEXT PROCESSING
1)	C00260 00106	
1)	C00262 00107	ROUTINES TO PROCESS POINTERS
1)	C00264 00108	NCO:	PUSHJ	P,SWAPSY
1)	C00266 00109	
1)	C00267 00110	END OF PASS2
1)	C00270 00111	FBLKD:	TLOE	N,BLKD1		IS THIS FIRST BLOCK DATA?
1)	C00274 00112	CONPOL:	ADD	T,ITC	CONSTANT BASE
1)	C00276 00113	DODONE:	POP	P,-1(P)	BACK UP ADDRESS
1)	C00278 00114	DREAD:	TLNE	N,RCF		NEW REPEAT COUNT NEEDED
1)	C00280 00115	ROUTINE TO SKIP FORTRAN OUTPUT
1)	C00283 00116	LISP LOADER
1)	C00284 00117
1)	C00285 ENDMK
1)	C⊗;
1)		SUBTTL	RP GRUEN/NGP/WFW/DMN  V.052	7-SEP-70
1)	; RFS 11-30-70
*** LOADER.MAC[CSP,SYS] *** PAGE 1
2)	COMMENT ⊗   VALID 00107 PAGES
2)	C REC  PAGE   DESCRIPTION
2)	C00001 00001
2)	C00009 00002	RP GRUEN/NGP/WFW/DMN  V.052	7-SEP-70
2)	C00012 00003	DEFAULT ASSEMBLY SWITCH SETTINGS
2)	C00015 00004	ACCUMULATOR ASSIGNMENTS
2)	C00017 00005	FLAGS	F(0 - 17)
2)	C00020 00006	MORE FLAGS IN F (18-35)
2)	C00022 00007	IFE K,<	TITLE	LOADER - LOADS MACRO AND FORTRAN FOUR>
2)	C00024 00008	CCL INITIALIZATION
2)	C00027 00009	RPGS3:	MOVEI	CTLBUF	
2)	C00029 00010	NORMAL INITIALIZATION
2)	C00037 00011	LOADER SCAN FOR FILE NAMES
2)	C00044 00012	CHARACTER HANDLING
2)	C00047 00013	OUTPUT SPECIFICATION DELIMITER <=> OR <LEFT ARROW>
2)	C00052 00014	RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)
2)	C00055 00015	IFN SYMARG,<
2)	C00058 00016	TERMINATION
2)	C00063 00017	PRINT FINAL MESSAGE

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

2)	C00068 00018	SET UP JOBDAT
2)	C00073 00019	BLT SYMBOL TABLE INTO HIGH SEGMENT
2)	C00075 00020	NOBLT:	HRRZ	Q,HILOW	GET HIGHEST LOC LOADED
2)	C00077 00021	WRITE DUMP FILE
2)	C00080 00022	WRITE CHAIN FILES
2)	C00083 00023	SPECIAL CHAINB
2)	C00087 00024	SMTBFX:	TLNE N,PPCSW	IF NOT CUTTING BACK SYMBOL TABLE
2)	C00092 00025	EXPAND CORE
2)	C00095 00026	SWITCH HANDLING
2)	C00096 00027	DISPATCH TABLE FOR SWITCHES
2)	C00100 00028	 PAIRED SWITCHES ( +,-)
2)	C00103 00029	IFN REENT,<	 H SWITCH --- EITHER /H OR /NH
2)	C00105 00030	SWITCH MODE NUMERIC ARGUMENT
2)	C00107 00031	ATTEMPT TO CHAIN WITH SPECIFIED HALF OF JOBCHN = 0
2)	C00108 00032	CHARACTER CLASSIFICATION TABLE DESCRIPTION:
2)	C00110 00033	BYTE POINTERS TO CHARACTER CLASSIFICATION TABLE
2)	C00113 00034	INITIALIZE LOADING OF A FILE
2)	C00116 00035	LIBRARY SEARCH CONTROL AND LOADER CONTROL
2)	C00119 00036		LIB CONTROLS THE LIBRARY SEARCH OF ONE FILE
2)	C00121 00037	IFN SAILSW,<
2)	C00124 00038	LDDT LOADS <SYS:DDT.REL> AND SETS SYMSW
2)	C00127 00039	EOF TERMINATES LOADING OF A FILE
2)	C00129 00040	LOAD SUBROUTINE
2)	C00132 00041	LOAD PROGRAMS AND DATA 		(BLOCK TYPE 1)
2)	C00135 00042	LOAD SYMBOLS 			(BLOCK TYPE 2)
2)	C00137 00043		LOCAL SYMBOL
2)	C00140 00044		GLOBAL DEFINITION MATCHES REQUEST
2)	C00143 00045		COMBINE TWO REQUEST CHAINS
2)	C00146 00046	FIXWL:	HRLZ	T,W		UPDATE VALUE OF LEFT HALF
2)	C00148 00047		PATCH VALUES INTO CHAINED REQUEST
2)	C00150 00048	HIGH-SEGMENT 			(BLOCK TYPE 3)
2)	C00154 00049	HIGHEST RELOCATABLE POINT 	(BLOCK TYPE 5)
2)	C00160 00050	EXPAND HIGH SEGMENT
2)	C00162 00051	PROGRAM NAME 			(BLOCK TYPE 6)
2)	C00166 00052	COMPILER TYPE - DO SPECIAL FUNCTION FOR IT
2)	C00167 00053	STARTING ADDRESS 		(BLOCK TYPE 7)
2)	C00168 00054	ONE PASS LOCAL DEFINITION 	(BLOCK TYPE 10)
2)	C00170 00055	LVAR FIX-UP 			(BLOCK TYPE 13)
2)	C00173 00056	FAIL LOADER
2)	C00181 00057	IFN FAILSW,<POLISH FIXUPS 	(BLOCK TYPE 11)
2)	C00184 00058	HANDLE OPERANDS. THIS GETS COMPLICATED BECAUSE OF THE PRESENCE OF
2)	C00186 00059	HAVE ENOUGH OPERANDS FOR THE CURRENT OPERATOR
2)	C00189 00060	FINALLY WE GET TO STORE THIS MESS
2)	C00191 00061	ALSTR1:	IFN L,<CAMGE V,RINITL
2)	C00193 00062	POLSAT:	PUSH P,C	SAVE SYMBOL
2)	C00195 00063	PSAT2:	HRL C,HDSAV	GET FIXUP NUMBER
2)	C00198 00064	STRSAT:	MOVE W,C	GET VALUE TO STORE IN W
2)	C00199 00065	LIBRARY INDEX 			(BLOCK TYPE 14)

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

2)	C00202 00066	INDEX4:	ADDM	T,ABUF1
2)	C00206 00067	THSBLK:	SUB	A,LSTBLK	GET WORD DIFFERENCE
2)	C00208 00068	ALGOL OWN BLOCK (TYPE 15)
2)	C00211 00069	SAIL BLOCK TYPE 15
2)	C00213 00070	SYMBOL TABLE SEARCH SUBROUTINES
2)	C00216 00071	RELOCATION AND BLOCK INPUT
2)	C00218 00072	PRINT STORAGE MAP SUBROUTINE
2)	C00223 00073	PRMP1A:	PUSHJ	P,TAB
2)	C00227 00074	LIST UNDEFINED AND MULTIPLY DEFINED GLOBALS
2)	C00229 00075	ENTER FILE ON AUXILIARY OUTPUT DEVICE
2)	C00231 00076	PRINT SUBROUTINES
2)	C00232 00077	IFN NAMESW,<
2)	C00233 00078		ACCUMULATORS USED: Q,T,D
2)	C00236 00079	SYMBOL PRINT - RADIX 50
2)	C00238 00080	OTOD:	IBP	N
2)	C00239 00081	ERROR MESSAGE PRINT SUBROUTINE
2)	C00241 00082	ERRPT8:	TLO	F,FCONSW	INSURE TTY OUTPUT
2)	C00242 00083	INPUT - OUTPUT INTERFACE
2)	C00244 00084	IMPURE CODE
2)	C00245 00085	DATA STORAGE
2)	C00247 00086	PT1:	BLOCK 1
2)	C00249 00087	BUFFER HEADERS AND HEADER HEADERS
2)	C00251 00088	FORTRAN DATA STORAGE
2)	C00253 00089	REMAP UUO
2)	C00255 00090	LISP LOADER
2)	C00256 00091	 FORTRAN FOUR LOADER
2)	C00258 00092	PROCESS TABLE ENTRIES
2)	C00260 00093	STORE WORD AND SET BIT TABLE
2)	C00263 00094	PROCESS END CODE WORD
2)	C00268 00095	PRSTWX:	PUSHJ	P,WORDPR	GET A WORD PAIR
2)	C00270 00096	BEGIN HERE PASS2 TEXT PROCESSING
2)	C00272 00097	TABDIS:	XWD 11,PCONS		CONSTANTS
2)	C00274 00098	ROUTINES TO PROCESS POINTERS
2)	C00276 00099	NCO:	PUSHJ	P,SWAPSY
2)	C00278 00100	SWAPSY:	MOVEI	T,0		SET TO EXCHANGE DEFS
2)	C00279 00101	END OF PASS2
2)	C00282 00102	FBLKD:	TLOE	N,BLKD1		IS THIS FIRST BLOCK DATA?
2)	C00286 00103	CONPOL:	ADD	T,ITC	CONSTANT BASE
2)	C00288 00104	DODONE:	POP	P,-1(P)	BACK UP ADDRESS
2)	C00290 00105	DREAD:	TLNE	N,RCF		NEW REPEAT COUNT NEEDED
2)	C00292 00106	ROUTINE TO SKIP FORTRAN OUTPUT
2)	C00295 00107	LISP LOADER
2)	C00297 ENDMK
2)	C⊗;
2)	SUBTTL	RP GRUEN/NGP/WFW/DMN  V.052	7-SEP-70
2)	; RFS 11-30-70



	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 1,1

******** ILOAD.MAC **** PAGE 2
1)	SUBTTL	DEFAULT ASSEMBLY SWITCH SETTINGS ++ lisp switch here ++
1)	IFNDEF SPMON,<SPMON=0>
*** LOADER.MAC[CSP,SYS] *** PAGE 2
2)	SUBTTL	DEFAULT ASSEMBLY SWITCH SETTINGS
2)	IFNDEF SPMON,<SPMON=0>


******** ILOAD.MAC **** PAGE 3
1)	L==1			;this off makes regular Stanf. loader
1)	IFNDEF L,<L=0>
*** LOADER.MAC[CSP,SYS] *** PAGE 3
2)	IFNDEF L,<L=0>


******** ILOAD.MAC **** PAGE 3
1)			TEMP==0
1)			REENT==1>
*** LOADER.MAC[CSP,SYS] *** PAGE 3
2)			TEMP==1
2)			REENT==1>


******** ILOAD.MAC **** PAGE 10
1)		HRRZM W,LSPREL		;BY DBA AFTER JRA FOR UCI
1)		MOVEI 0,0
*** LOADER.MAC[CSP,SYS] *** PAGE 10
2)		MOVEI 0,0


******** ILOAD.MAC **** PAGE 10
1)		SUB	B,SE3		;INITIALIZE SYMBOL TABLE POINTER
1)		CAILE     H,1(B)	;TEST CORE ALLOCATION>
*** LOADER.MAC[CSP,SYS] *** PAGE 10
2)	;	SUB	B,SE3		;INITIALIZE SYMBOL TABLE POINTER
2)		SUBI B,2		;INITIALIZE SYMBOL TABLE POINTER
2)		CAILE     H,1(B)	;TEST CORE ALLOCATION>


******** ILOAD.MAC **** PAGE 10
1)		HRR	N,B 		;INITIALIZE PROGRAM NAME POINTER
*** LOADER.MAC[CSP,SYS] *** PAGE 10
2)		HRRZ T,B		;Initialize pointer to end of globals
2)		HRLI T,-2
2)		MOVEM T,GLBEND
2)		MOVEI T,GLBEND
2)		MOVEM T,GLBENP		;AND POINTER POINTER
2)		HRR	N,B 		;INITIALIZE PROGRAM NAME POINTER

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 10,10



******** ILOAD.MAC **** PAGE 10
1)	IFN FAILSW,<MOVEI W,440000	;SET UP THE SPECIAL BITS OF HEADNUM(ADD+POLISH)
*** LOADER.MAC[CSP,SYS] *** PAGE 10
2)	IFN STANSW,<SETZM OPEN4+1 >	;EXISTENCE OF A DUMP DEVICE IS USED AS A FLAG
2)	IFN FAILSW,<MOVEI W,440000	;SET UP THE SPECIAL BITS OF HEADNUM(ADD+POLISH)


******** ILOAD.MAC **** PAGE 16
1)	;OR PROJ-PROG # BRACKETS <[> AND <]>
1)	LD5C:
1)	IFN SPCHN,<CAIN T,"="	;DO A /= AS SWITCH
1)		TLNN F,SSW
*** LOADER.MAC[CSP,SYS] *** PAGE 13
2)	;OR PROJ-PROG # BRACKETS <[> AND <]>, OR '↑'
2)	LD5C:
2)	IFN SPCHN!STANSW,<CAIN T,"="	;DO A /= AS SWITCH
2)		TLNN F,SSW


******** ILOAD.MAC **** PAGE 16
1)		TLOE	F,ASW			;TEST AND SET LEFT ARROW FLAG
*** LOADER.MAC[CSP,SYS] *** PAGE 13
2)	IFN STANSW,< CAIE T,"↑"			;WRITE DMP FILE?
2)		     TDZA T,T			;NO.  MUST BE "="
2)		     MOVEI T,SAVFIL-DTOUT >	;YES. SET OFFSET TO FILENAME BLOCK
2)	IFE STANSW,< SETZ T,>
2)		TLOE	F,ASW			;TEST AND SET LEFT ARROW FLAG


******** ILOAD.MAC **** PAGE 16
1)		MOVSI     W,554160		;ASSUME <.MAP> IN DEFAULT CASE
1)		MOVEM     W,DTOUT1		;STORE FILE EXTENSION IDENTIFIER
1)		MOVE	W,DTIN			;LOAD INPUT FILE IDENTIFIER
1)		MOVEM     W,DTOUT		;USE AS OUTPUT FILE IDENTIFIER
1)	IFN SPCHN,<MOVEM W,CHNENT	;AND FOR SPECAIL CHAINING>
1)	IFN PP,<MOVE	W,PPN			;PROJ-PROG #
1)		MOVEM	W,DTOUT+3		;...>
1)		MOVE	W,ILD1			;LOAD INPUT DEVICE IDENTIFIER
1)		MOVEM	W,LD5C1			;USE AS OUTPUT DEVICE IDENTIFIER
*** LOADER.MAC[CSP,SYS] *** PAGE 13
2)	IFN STANSW,< JRST [MOVSI W,'MAP' 	;ASSUME <.MAP> IN DEFAULT CASE
2)			   JUMPE T,.+1
2)			   MOVSI W,'DMP'	;USE DIFFERENT EXT. FOR DUMP FILES
2)			   JRST .+1] >
2)	IFE STANSW,< MOVSI     W,'MAP' >	;ASSUME <.MAP> IN DEFAULT CASE
2)		MOVEM     W,DTOUT1(T)		;STORE FILE EXTENSION IDENTIFIER

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 16,13

2)		MOVE	W,DTIN			;LOAD INPUT FILE IDENTIFIER
2)		MOVEM     W,DTOUT(T)		;USE AS OUTPUT FILE IDENTIFIER
2)	IFN SPCHN,<MOVEM W,CHNENT	;AND FOR SPECAIL CHAINING>
2)	IFN PP,<MOVE	W,PPN			;PROJ-PROG #
2)		MOVEM	W,DTOUT+3(T)		;...>
2)		MOVE	W,ILD1			;LOAD INPUT DEVICE IDENTIFIER
2)	IFN STANSW,< JUMPN T,LD5S >		;DMP FILE USES DIFFERENT CHANNEL
2)		MOVEM	W,LD5C1			;USE AS OUTPUT DEVICE IDENTIFIER


******** ILOAD.MAC **** PAGE 16
1)	;RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)
*** LOADER.MAC[CSP,SYS] *** PAGE 13
2)	IFN STANSW,<
2)	LD5S:	MOVEM W,OPEN4+1
2)	IFN PP,<SKIPE	W,OLDDEV		;RESTORE OLD DEVICE
2)		MOVEM	W,ILD1>
2)		OPEN	4,OPEN4			;KEEP IT PURE
2)		JRST	ILD5A
2)		TLNE	F,REWSW			;REWIND REQUESTED?
2)		UTPCLR	4,			;DECTAPE REWIND
2)		TLZE	F,REWSW			;SKIP IF NO REWIND REQUESTED
2)		MTAPE	4,1			;REWIND THE AUX DEV
2)		ENTER 4,SAVFIL
2)		JRST LD5SFL
2)		JRST LD2D
2)	LD5SFL:	ERROR ,</ENTER FAILED ON DUMP FILE@/>
2)		JRST LD2 >
2)	;RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)


******** ILOAD.MAC **** PAGE 17
1)		IFN SYMARG,<
1)	;CONVERT SYMBOL IN W TO RADIX-50 IN C
*** LOADER.MAC[CSP,SYS] *** PAGE 14
2)	IFN SYMARG,<
2)	;CONVERT SYMBOL IN W TO RADIX-50 IN C


******** ILOAD.MAC **** PAGE 19
1)		RELEASE	2,		;RELEASE AUX. DEV.
1)		RELEASE 1,0	;INPUT DEVICE
1)		RELEASE 3,0	;TTY
1)	IFN SPCHN,<RELEASE 4,0	;SPECIAL CHAINING CHANEL>
1)	IFN NAMESW,<HRRZ	W,HISTRT	;IN CASE NO NAME SET, USE FIRST LOADED
*** LOADER.MAC[CSP,SYS] *** PAGE 16
2)	IFN NAMESW,<HRRZ	W,HISTRT	;IN CASE NO NAME SET, USE FIRST LOADED


	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 19,16


******** ILOAD.MAC **** PAGE 19
1)		SETNAM	W,			;SETNAME>
1)	IFN L,< MOVE	W,LSPREL	; BY DBA AFTER JRA FOR UCI
1)		JRST @LSPXIT>
1)	IFE L,<		;NONE OF THIS NEEDED FOR LISP
1)	IFN PURESW,<
*** LOADER.MAC[CSP,SYS] *** PAGE 16
2)		MOVEM W,CURNAM
2)		SETNAM	W,			;SETNAME>
2)	IFN L,<JRST @LSPXIT>
2)	IFE L,<		;NONE OF THIS NEEDED FOR LISP
2)	IFN STANSW,< SKIPE OPEN4+1	;DUMP FILE TO BE MADE?
2)		     PUSHJ P,WRTSAV	;YES >
2)		RELEASE	2,		;RELEASE AUX. DEV.
2)		RELEASE 1,0	;INPUT DEVICE
2)		RELEASE 3,0	;TTY
2)	IFN SPCHN,<RELEASE 4,0	;SPECIAL CHAINING CHANEL>
2)	IFN PURESW,<


******** ILOAD.MAC **** PAGE 22
1)		HRRZ A,R
*** LOADER.MAC[CSP,SYS] *** PAGE 18
2)		HLLZ A,GLBEND	;INCLUDE LOCALS, ETC. IN SYMBOL TABLE
2)		ADD B,A
2)		HRRZ A,R


******** ILOAD.MAC **** PAGE 22
1)		HRRM A,JOBHRL(X)
1)		SUB A,HVAL1
1)		HRLM A,JOBHRL(X)>
1)		POPJ P,
*** LOADER.MAC[CSP,SYS] *** PAGE 18
2)		HRRZM A,JOBHRL(X)
2)	IFE STANSW,<		;DON'T PUT SHIT IN LH AT STANFORD
2)		SUB A,HVAL1
2)		HRLM A,JOBHRL(X)>>
2)		POPJ P,


******** ILOAD.MAC **** PAGE 23
1)		HLLZ	Q,S	;COMPUTE LENGTH OF SYMBOL TABLE
*** LOADER.MAC[CSP,SYS] *** PAGE 19
2)		HLLZ A,GLBEND	;INCLUDE LOCALS, ETC. IN SYMBOL TABLE
2)		ADD B,A
2)		HLLZ	Q,S	;COMPUTE LENGTH OF SYMBOL TABLE

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 23,19



******** ILOAD.MAC **** PAGE 24
1)	SUBTTL	WRITE CHAIN FILES
*** LOADER.MAC[CSP,SYS] *** PAGE 20
2)	SUBTTL	WRITE DUMP FILE
2)	IFE STANSW,<XLIST>
2)	IFN L,<XLIST>			;NONE OF THIS FOR LISP
2)	IFN STANSW,< IFE L,<
2)		HINAME=134		;NOT KNOWN IN JOBDAT
2)		HILOC=135
2)		EXTERNAL JOBSAV,JOBS41
2)	; SWAP UUO does not know about segments,   so we have to fake it.
2)	; Writes out core from JOBSAV+1(X) to JOBFF and the segment.  The
2)	; mess should be replaced with
2)	;	MOVSI V,SWPBLK
2)	;	SWAP V,
2)	;	HALT .
2)	; And code at LD5S should be changed not to do OPEN and ENTER but
2)	; rather put the args, into SWPBLK which should replace the block
2)	; called SAVFIL.  Then it will be done right.
2)	WRTSAV:	MOVE V,JOB41(X)		;MAKE SURE TO SAVE THAT
2)		MOVEM V,JOBS41(X)
2)	IFN KUTSW,< SKIPL V,CORSZ	;NEG MEANS DO NOT KUT BACK CORE
2)		    CAMGE V,JOBREL(X)
2)		    MOVE V,JOBREL(X)
2)		    MOVEM V,JOBCOR(X)	;GUARANTEE THIS MUCH WHEN LOADED >
2)		MOVE V,HVAL1		;CHECK FOR A SEGMENT
2)		CAMN V,HVAL
2)		JRST WRTSA1		;NONE
2)		MOVE V,CURNAM		;SET SEGMENT NAME
2)		MOVEM V,HINAME(X)
2)		MOVE V,JOBFF(X)		;SET SEGMENT BREAK
2)		MOVEM V,HILOC(X)
2)	WRTSA1:	MOVEI V,JOBSAV+1	;-SIZE OF LOWER
2)		SUB V,JOBFF(X)
2)		ANDCMI V,1		;MAKE SURE THAT THE WC IS EVEN! REG
2)		HRLI V,JOBSAV(X)	;FIRST LOCATION OF SAVE
2)		MOVSM V,IOWDPP
2)		MOVE V,HVAL1		;HIGH?
2)		SUB V,HVAL
2)		JUMPE V,WRTSA2		;NO
2)		HRL V,HISTRT		;YES, MAKE IOWD
2)		ANDCMI V,1		;MAKE SURE THAT THE WC IS EVEN! REG
2)	WRTSA2:	MOVSM V,IOWDPP+1
2)		SETZM IOWDPP+2
2)		OUT 4,IOWDPP
2)		JRST [	PUSH P,Q	;SAVE Q (SETUP BY BLTSET)

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 24,20

2)			RELEAS 4,
2)			MOVE W,[SIXBIT /SAVED /]
2)			PUSHJ P,PWORD
2)			MOVE W,OPEN4+1
2)			PUSHJ P,PFWORD
2)			MOVEI T,':'
2)			PUSHJ P,TYPE
2)			MOVE W,SAVFIL
2)			PUSHJ P,PFWORD
2)			MOVEI T,'.'
2)			PUSHJ P,TYPE
2)			MOVE W,SAVFIL+1
2)			PUSHJ P,PFWORD
2)			POP P,Q
2)			JRST CRLF ]
2)		ERROR 0,</WRITE ERROR ON DUMP FILE@/>
2)		HALT CPOPJ
2)	>>	LIST
2)	SUBTTL	WRITE CHAIN FILES


******** ILOAD.MAC **** PAGE 28
1)		ADDM H,HISTRT	;UPDATE START OF HISEG
*** LOADER.MAC[CSP,SYS] *** PAGE 25
2)		ADDM H,GLBEND	;It better not be in an AC when XPAND is called!!!
2)		ADDM H,HISTRT	;UPDATE START OF HISEG


******** ILOAD.MAC **** PAGE 30
1)	LD6A:	CAIN	T,57		;WAS CHAR A SLASH?
1)		TLO	N,SLASH		;REMEBER THAT
*** LOADER.MAC[CSP,SYS] *** PAGE 26
2)	LD6A:
2)	IFN STANSW,< CAIE T,"%"		;ACCEPT '%' AS WELL AS '/' >
2)		CAIN	T,57		;WAS CHAR A SLASH?
2)		TLO	N,SLASH		;REMEBER THAT


******** ILOAD.MAC **** PAGE 31
1)		JRST LD7B
1)		PUSHJ P,VSWTCH		;> BECOMES V
*** LOADER.MAC[CSP,SYS] *** PAGE 27
2)		PUSHJ P,RHTCRK
2)		PUSHJ P,VSWTCH		;> BECOMES V


******** ILOAD.MAC **** PAGE 32
1)	IFN REENT,<

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 32,28

1)	; H SWITCH --- EITHER /H OR /NH
1)	HSET:	JUMPE	D,SETNUM	;/H ALWAYS LEGAL
*** LOADER.MAC[CSP,SYS] *** PAGE 28
2)	IFN STANSW,<		;MAKE RUSSELL HAPPY BY DISTRIBUTING GLOBALS LIKE WE USED TO
2)	RHTCRK:	HLLZ C,GLBEND
2)		ADD B,C		;INCLUDE CURRENT STUFF
2)		HRRZS GLBEND	;NO MORE STUFF HERE
2)		MOVEI C,B
2)		MOVEM C,GLBENP	;NOW MAKE EVERYONE LOOK AT B INSTEAD
2)		POPJ P,
2)	>; END OF RHTCRK
2)	IFN REENT,<	; H SWITCH --- EITHER /H OR /NH
2)	HSET:	JUMPE	D,SETNUM	;/H ALWAYS LEGAL


******** ILOAD.MAC **** PAGE 37
1)	LD9:	BYTE	(4)4,0,0,0,0,0,0,0,0
1)		BYTE	(4)4,4,4,4,12,0,0,0,0
1)		BYTE	(4)0,0,0,0,0,0,0,0,0
1)		BYTE	(4)13,0,0,0,0,4,0,4,0
1)	IFE SYMARG,<	BYTE	(4)0,0,0,0,5,3,0,0,11>
1)	IFN SYMARG,<	BYTE	(4)0,0,14,0,5,3,0,0,11>
1)			BYTE	(4)0,7,5,2,2,2,2,2,2
1)	IFE SPCHN!STANSW,<	BYTE	(4)2,2,2,2,6,0,0,10,0>
1)	IFN SPCHN!STANSW,<	BYTE	(4)2,2,2,2,6,0,1,10,1>
1)	IFE RPGSW,<	BYTE	(4)0,0,1,1,1,1,1,1,1>
1)	IFN RPGSW,<	BYTE (4) 0,10,1,1,1,1,1,1,1>
1)		BYTE	(4)1,1,1,1,1,1,1,1,1
1)		BYTE	(4)1,1,1,1,1,1,1,1,1
1)	IFE PP,<BYTE	(4)1,0,0,0,0,10,0,1,1>
1)	IFN PP,<BYTE	(4)1,10,0,10,0,10,0,1,1>
1)		BYTE	(4)1,1,1,1,1,1,1,1,1
1)		BYTE	(4)1,1,1,1,1,1,1,1,1
1)		BYTE	(4)1,1,1,1,1,1,0,0,13
1)		BYTE	(4)13,4
1)	SUBTTL	INITIALIZE LOADING OF A FILE
*** LOADER.MAC[CSP,SYS] *** PAGE 33
2)	LD9:	BYTE	(4)4,0,0,0,0,0,0,0,0			;00-10
2)		BYTE	(4)4,4,4,4,12,0,0,0,0			;11-21
2)		BYTE	(4)0,0,0,0,0,0,0,0,0			;22-32
2)		BYTE	(4)13,0,0,0,0,4,0,4,0			;33-43
2)	IFE SYMARG,<IFN STANSW,<BYTE	(4)0,5,0,0,5,3,0,0,11>	;44-54
2)		    IFE STANSW,<BYTE	(4)0,0,0,0,5,3,0,0,11>
2)	IFN SYMARG,<	BYTE	(4)0,0,14,0,5,3,0,0,11>
2)		BYTE	(4)0,7,5,2,2,2,2,2,2			;55-65
2)	IFE SPCHN!STANSW,<	BYTE	(4)2,2,2,2,6,0,0,10,0>	;66-76
2)	IFN SPCHN!STANSW,<	BYTE	(4)2,2,2,2,6,0,1,10,1>
2)	IFE RPGSW,<	BYTE	(4)0,0,1,1,1,1,1,1,1>		;77-107

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 37,33

2)	IFN RPGSW,<	BYTE (4) 0,10,1,1,1,1,1,1,1>
2)		BYTE	(4)1,1,1,1,1,1,1,1,1			;110-120
2)		BYTE	(4)1,1,1,1,1,1,1,1,1			;121-131
2)	IFE PP,<BYTE	(4)1,0,0,0,0,10,0,1,1>			;132-142
2)	IFN PP,<IFN STANSW,<IFE L,< BYTE    (4)1,10,0,10,10,10,0,1,1>>	;Activate '↑'
2)		IFE STANSW,< BYTE    (4)1,10,0,10,0,10,0,1,1>>
2)		IFN L,< BYTE         (4)1,10,0,10,0,10,0,1,1>>
2)		BYTE	(4)1,1,1,1,1,1,1,1,1			;143-153
2)		BYTE	(4)1,1,1,1,1,1,1,1,1			;154-164
2)		BYTE	(4)1,1,1,1,1,1,0,0,13			;165-175
2)		BYTE	(4)13,4					;176-177
2)	SUBTTL	INITIALIZE LOADING OF A FILE


******** ILOAD.MAC **** PAGE 44
1)	SUBTTL	LOAD PROGRAMS AND DATA (BLOCK TYPE 1)
1)	PROG:	MOVEI	V,-1(W) 		;LOAD BLOCK LENGTH
*** LOADER.MAC[CSP,SYS] *** PAGE 40
2)	SUBTTL	LOAD PROGRAMS AND DATA 		(BLOCK TYPE 1)
2)	PROG:	MOVEI	V,-1(W) 		;LOAD BLOCK LENGTH


******** ILOAD.MAC **** PAGE 45
1)	SUBTTL	LOAD SYMBOLS (BLOCK TYPE 2)
1)	SYM:	PUSHJ	P,PRWORD	;READ TWO DATA WORDS
*** LOADER.MAC[CSP,SYS] *** PAGE 41
2)	SUBTTL	LOAD SYMBOLS 			(BLOCK TYPE 2)
2)	SYM:	PUSHJ	P,PRWORD	;READ TWO DATA WORDS


******** ILOAD.MAC **** PAGE 46
1)		TLNN	C,40000
1)		JRST	SYM1A		;LOCAL SYMBOL
1)		TLNE C,100000
1)		JRST SYM1B
1)		PUSHJ     P,SREQ		;GLOBAL DEF., SEARCH FOR REQUEST
*** LOADER.MAC[CSP,SYS] *** PAGE 42
2)		TLNN C,100000	;LOCAL OR BLOCK NAME?
2)		TLNN	C,40000
2)		JRST	SYM1A		;LOCAL SYMBOL
2)	;	TLNE C,100000
2)	;	JRST SYM1B
2)		PUSHJ     P,SREQ		;GLOBAL DEF., SEARCH FOR REQUEST


******** ILOAD.MAC **** PAGE 46
1)		JRST	SYM1B
1)	;	PROCESS MULTIPLY DEFINED GLOBAL

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 46,42

*** LOADER.MAC[CSP,SYS] *** PAGE 42
2)		JRST	SYM1BG
2)	;	PROCESS MULTIPLY DEFINED GLOBAL


******** ILOAD.MAC **** PAGE 47
1)	SYM1D:	SUBI	S,2;		UPDATE UNDEFINED POINTER
1)		POP	B,2(A)		;MOVE UNDEFINED VALUE POINTER
1)		POP	B,1(A)		;MOVE UNDEFINED SYMBOL
1)		MOVEM   W,2(B)		;STORE VALUE
*** LOADER.MAC[CSP,SYS] *** PAGE 43
2)		MOVE T,@GLBENP
2)	;BUG TRAP
2)		TLNE C,040000		;Trap off globals
2)		TLNE C,300000
2)		JRST SYM1D
2)		HALT SYM1DG
2)	;END BUG TRAP
2)	SYM1D:	SUBI	S,2;		UPDATE UNDEFINED POINTER
2)		SUB B,[XWD 2,0]		;TO PREVENT PDLOV IF NO GLOBALS
2)		POP	B,2(A)		;MOVE UNDEFINED VALUE POINTER
2)		POP	B,1(A)		;MOVE UNDEFINED SYMBOL
2)		ADD B,[XWD 4,0]		;COMPENSATE FOR POP
2)		POP T,2(B)		;MOVE GLOBAL VALUE POINTER
2)		POP T,1(B)		;MOVE GLOBAL SYMBOL
2)	SYM1E:	MOVEM W,2(T)		;STORE VALUE
2)		MOVEM C,1(T)		;STORE SYMBOL
2)		MOVEM T,@GLBENP
2)		POPJ	P,
2)	;	GLOBAL SYMBOL
2)	SYM1BG:	CAIL	H,(S)		;STORE DEFINED SYMBOL
2)	IFN EXPAND,<	PUSHJ P,XPAND7>
2)	IFE EXPAND,<	JRST SFULLC>
2)		IFE K,<
2)		TLNE	N,F4SW;		FORTRAN FOUR REQUIRES A BLT
2)		PUSHJ 	P,MVDWN;	OF THE TABLES>
2)		MOVEI	A,-2(S)		;LOAD A TO SAVE INST. AT SYM2
2)	;BUG TRAP
2)		TLNE C,040000		;Trap off non-globals
2)		TLNE C,300000
2)		HALT SYM1D
2)	;END BUG TRAP
2)	SYM1DG:	SUBI	S,2;		UPDATE UNDEFINED POINTER
2)		TLC B,400000		;AVOID PDLOV IF NO GLOBALS YET
2)		POP	B,2(A)		;MOVE UNDEFINED VALUE POINTER
2)		POP	B,1(A)		;MOVE UNDEFINED SYMBOL
2)		TLC B,400000
2)		MOVEM   W,2(B)		;STORE VALUE

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 47,43



******** ILOAD.MAC **** PAGE 48
1)	SYM2C:	POPJ	P,SYM1D	;RETURN, SEE SYM2 FOR USE OF ADDRESS
1)	;	REQUEST MATCHES GLOBAL DEFINITION
*** LOADER.MAC[CSP,SYS] *** PAGE 44
2)	SYM2C:	POPJ	P,SYM1DG	;RETURN, SEE SYM2 FOR USE OF ADDRESS
2)	;	REQUEST MATCHES GLOBAL DEFINITION


******** ILOAD.MAC **** PAGE 48
1)		HRRI	 W,2(B)		;GET LOCATION IN RIGHT HALF
*** LOADER.MAC[CSP,SYS] *** PAGE 44
2)		MOVE V,1(B)		;Trap fixups to globals
2)		TLNE V,040000
2)		JRST SYM3X2		;We'll worry about finding the symbol at SYM2W
2)		HRRI	 W,2(B)		;GET LOCATION IN RIGHT HALF


******** ILOAD.MAC **** PAGE 48
1)	IFN FAILSW,<TLZ	W,040000>
1)	SYM3X2:	CAIL	H,(S)		;STORE REQUEST IN UNDEF. TABLE WFW
*** LOADER.MAC[CSP,SYS] *** PAGE 44
2)	;IFN FAILSW,<TLZ	W,040000>	;No longer needed, see SYM2W
2)	SYM3X2:	CAIL	H,(S)		;STORE REQUEST IN UNDEF. TABLE WFW


******** ILOAD.MAC **** PAGE 50
1)	SYM2W:	IFN FAILSW,<
1)		TLNE V,40000	;CHECK FOR POLISH
1)		JRST POLSAT>
1)		TLNN V,100000	;SYMBOL TABLE?
1)		JRST SYM2WA
1)		ADD V,HISTRT	;MAKE ABSOLUTE
1)		SUBI V,(X)	;GET READY TO ADD X
1)		PUSHJ P,FIXW1
1)		JRST SYM2W1
1)	SYM2WA:	PUSHJ P,FIXW	;DO FIXUP
1)		JRST SYM2W1	;AND LOOK FOR MORE REQUESTS
1)	;END WFW PATCH
1)	;PATCH VALUES INTO CHAINED REQUEST
1)	SYM4:	IFN L,<CAMGE V,RINITL
*** LOADER.MAC[CSP,SYS] *** PAGE 46
2)	SYM2W:	TLNN V,100000	;SYMBOL TABLE?
2)		JRST SYM2WA
2)		TLNE V,40000	;GLOBAL?
2)		JRST [	EXCH C,V
2)			PUSHJ P,SDEF

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 50,46

2)			JRST [	MOVE C,V
2)				HRRI V,2(A)
2)				JRST SYM2WB ]
2)			EXCH C,V
2)			HALT . ]
2)		ADD V,HISTRT	;MAKE ABSOLUTE
2)	SYM2WB:	SUBI V,(X)	;GET READY TO ADD X
2)		PUSHJ P,FIXW1
2)		JRST SYM2W1
2)	SYM2WA:	IFN FAILSW,<
2)		TLNE V,40000	;CHECK FOR POLISH
2)		JRST POLSAT>
2)		PUSHJ P,FIXW	;DO FIXUP
2)		JRST SYM2W1	;AND LOOK FOR MORE REQUESTS
2)	;END WFW PATCH
2)	;	PATCH VALUES INTO CHAINED REQUEST
2)	SYM4:	IFN L,<CAMGE V,RINITL


******** ILOAD.MAC **** PAGE 51
1)	SUBTTL	HIGH-SEGMENT (BLOCK TYPE 3)
1)	;THIS PROGRAM IS INTENDED FOR HI SEGMENT IF RUNNING ON A PDP-10.
*** LOADER.MAC[CSP,SYS] *** PAGE 47
2)	SUBTTL	HIGH-SEGMENT 			(BLOCK TYPE 3)
2)	;THIS PROGRAM IS INTENDED FOR HI SEGMENT IF RUNNING ON A PDP-10.


******** ILOAD.MAC **** PAGE 53
1)	SUBTTL	HIGHEST RELOCATABLE POINT (BLOCK TYPE 5)
1)	SFULLC:	TLOE	F,FULLSW	;PREVIOUS OVERFLOW?
*** LOADER.MAC[CSP,SYS] *** PAGE 48
2)	SUBTTL	HIGHEST RELOCATABLE POINT 	(BLOCK TYPE 5)
2)	SFULLC:	TLOE	F,FULLSW	;PREVIOUS OVERFLOW?


******** ILOAD.MAC **** PAGE 54
1)		HRR R,C		;SET NEW PROGRAM BREAK
1)		CAMGE C,W	;CHECK 2ND WORD (LOC PROG BRK IF PRESENT)
1)		MOVE C,W
1)	HIGH31:	ADDI C,(X)
*** LOADER.MAC[CSP,SYS] *** PAGE 49
2)		CAMGE C,W	;CHECK 2ND WORD (LOC PROG BRK IF PRESENT)
2)		MOVE C,W
2)		HRR R,C		;SET NEW PROGRAM BREAK
2)	HIGH31:	ADDI C,(X)


******** ILOAD.MAC **** PAGE 56

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 56,50

1)	SUBTTL	PROGRAM NAME (BLOCK TYPE 6)
1)	NAME:	TLOE	F,NAMSSW	;HAVE WE SEEN TWO IN A ROW?
*** LOADER.MAC[CSP,SYS] *** PAGE 50
2)	SUBTTL	PROGRAM NAME 			(BLOCK TYPE 6)
2)	NAME:	TLOE	F,NAMSSW	;HAVE WE SEEN TWO IN A ROW?


******** ILOAD.MAC **** PAGE 57
1)		JUMPE   W,NAME2		;JUMP IF NO COMMON IN THIS JOB
1)		HRRI	R,@R		;FIRST PROGRAM SET LOAD ORIGIN
*** LOADER.MAC[CSP,SYS] *** PAGE 51
2)		JUMPE   W,[		;JUMP IF NO COMMON IN THIS JON
2)			MOVE T,@GLBENP	;We'll need the global pointer (but if we get
2)			JRST NAME2 ]	;it and call XPAND, we'll lose big!).
2)		HRRI	R,@R		;FIRST PROGRAM SET LOAD ORIGIN


******** ILOAD.MAC **** PAGE 57
1)		SUBI	S,2 		;UPDATE UNDEF. TABLE POINTER
1)		POP	B,2(S)
1)		POP	B,1(S)
1)		HRRZ	V,N 		;POINTER TO PREVIOUS NAME
1)		SUBM	B,V 		;COMPUTE RELATIVE POSITIONS
1)		HRLM	V,2(N)		;STORE FORWARD POINTER
1)		HRR	N,B 		;UPDATE NAME POINTER
1)	NAME2:	MOVEM   C,1(B)		;STORE PROGRAM NAME
1)		HRRZM	R,2(B)		;STORE PROGRAM ORIGIN
1)		CAMG	W,COMSAV	;CHECK COMMON SIZE
*** LOADER.MAC[CSP,SYS] *** PAGE 51
2)		MOVE T,@GLBENP		;Pick up pointer to end of globals
2)		SUBI	S,2 		;UPDATE UNDEF. TABLE POINTER
2)		SUB B,[XWD 2,0]		;TO PREVENT PDLOV
2)		POP	B,2(S)
2)		POP	B,1(S)
2)		ADD B,[XWD 4,0]		;COMPENSATE FOR POPS
2)		POP T,2(B)
2)		POP T,1(B)
2)	NAME1A:	HRRZ	V,N 		;POINTER TO PREVIOUS NAME
2)		SUBM	T,V 		;COMPUTE RELATIVE POSITIONS
2)		HRLM	V,2(N)		;STORE FORWARD POINTER
2)		HRR	N,T 		;UPDATE NAME POINTER
2)	NAME2:	MOVEM   C,1(T)		;STORE PROGRAM NAME
2)		HRRZM	R,2(T)		;STORE PROGRAM ORIGIN
2)		MOVEM T,@GLBENP		;Save up pointer to end of globals
2)		CAMG	W,COMSAV	;CHECK COMMON SIZE


******** ILOAD.MAC **** PAGE 58

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 58,52

1)	SUBTTL	STARTING ADDRESS (BLOCK TYPE 7)
1)	START:	PUSHJ	P,PRWORD	;READ TWO DATA WORDS
*** LOADER.MAC[CSP,SYS] *** PAGE 52
2)	SUBTTL	STARTING ADDRESS 		(BLOCK TYPE 7)
2)	START:	PUSHJ	P,PRWORD	;READ TWO DATA WORDS


******** ILOAD.MAC **** PAGE 59
1)	SUBTTL	ONE PASS LOCAL DEFINITION (BLOCK TYPE 10)
1)					;PMP PATCH FOR LEFT HALF FIXUPS
*** LOADER.MAC[CSP,SYS] *** PAGE 53
2)	SUBTTL	ONE PASS LOCAL DEFINITION 	(BLOCK TYPE 10)
2)					;PMP PATCH FOR LEFT HALF FIXUPS


******** ILOAD.MAC **** PAGE 60
1)	SUBTTL	LVAR FIX-UP (BLOCK TYPE 13)
1)	IFN WFWSW,<
*** LOADER.MAC[CSP,SYS] *** PAGE 54
2)	SUBTTL	LVAR FIX-UP 			(BLOCK TYPE 13)
2)	IFN WFWSW,<


******** ILOAD.MAC **** PAGE 65
1)	IFN FAILSW,<
1)	;POLISH FIXUPS <BLOCK TYPE 11>
1)	PDLOV:	SKIPE POLSW	;PDL OV ARE WE DOING POLISH?
*** LOADER.MAC[CSP,SYS] *** PAGE 56
2)	IFN FAILSW,<;POLISH FIXUPS 	(BLOCK TYPE 11)
2)	PDLOV:	SKIPE POLSW	;PDL OV ARE WE DOING POLISH?


******** ILOAD.MAC **** PAGE 70
1)		CAMN A,B
1)		JRST FNOLOC	;MUST NOT BE LOADING LOCALS
*** LOADER.MAC[CSP,SYS] *** PAGE 61
2)		CAMN A,@GLBENP
2)		JRST FNOLOC	;MUST NOT BE LOADING LOCALS


******** ILOAD.MAC **** PAGE 70
1)		CAME A,B	;ALL DONE?
1)		JRST FSLP	;NO
*** LOADER.MAC[CSP,SYS] *** PAGE 61
2)		CAME A,@GLBENP	;ALL DONE?
2)		JRST FSLP	;NO



	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 70,61

******** ILOAD.MAC **** PAGE 73
1)	SUBTTL LIBRARY INDEX (BLOCK TYPE 14)
1)		COMMENT	*	DIRECT ACCESS LIBRARY SEARCH MODE
*** LOADER.MAC[CSP,SYS] *** PAGE 64
2)	SUBTTL LIBRARY INDEX 			(BLOCK TYPE 14)
2)		COMMENT	*	DIRECT ACCESS LIBRARY SEARCH MODE


******** ILOAD.MAC **** PAGE 79
1)	SREQ:	JUMPGE  S,CPOPJ1	;JUMP IF NO UNDEF. SYMBOLS
1)		SKIPA   A,S 		;LOAD REQUEST SEARCH POINTER
1)	SDEF:	MOVE	A,B 		;LOAD DEF. SYMBOL SEARCH POINTER
1)	SDEF1:	CAMN	C,1(A)
1)		POPJ	P,		;SYMBOLS MATCH, RETURN
1)	IFE K,<	TLNE	N,F4SW		;ARE WE IN FORTRAN?
1)		JRST	SDEF2		;YES,JUST TRY NEXT SYMBOL>
1)		TLC	C,400000	;MIGHT BE SUPPRESSED  INTERNAL
1)		CAMN	C,1(A)		;WAS IT?
1)		JRST	[TLO C,400000	;YES, SO ENSURE IT'S SUPPRESSED
1)			MOVEM C,1(A)	;STORE SUPPRESSED DEFINITION
1)			POPJ	P,]	;YES
1)		TLC	C,400000	;NO,TRY NEXT SYMBOL
1)	SDEF2:	ADD	A,SE3
1)		JUMPL   A,SDEF1
1)	IFE K,<	JRST	CPOPJ1		;SYMBOL NOT FOUND SKIPS ON RETURN>
*** LOADER.MAC[CSP,SYS] *** PAGE 70
2)	;	Rewritten by TVR
2)	SREQ:	JUMPGE  S,CPOPJ1	;JUMP IF NO UNDEF. SYMBOLS
2)		MOVE   A,S 		;LOAD REQUEST SEARCH POINTER
2)		JRST SDEF1
2)	SDEF:	MOVE	A,B 		;LOAD DEF. SYMBOL SEARCH POINTER
2)		TLNE C,040000		;Is it a global?
2)		TLNE C,300000
2)		MOVE A,@GLBENP		;Yes, use global pointer
2)	SDEF1:	TLNE N,F4SW		;FORTRAN search can be faster
2)		JRST SDEFF4
2)		PUSH P,T		;Save T just in case
2)		MOVE T,C		;Keep around half-killed for compare
2)		TLC T,400000
2)	SDEF1A:	CAMN C,1(A)		;Compare with symbol
2)		JRST SDEFRT		;Gotcha!  Non-skip return
2)		CAMN T,1(A)
2)		JRST [	TLO C,400000	;If suppressed, set same in symbol
2)			MOVEM C,1(A)	;table
2)			JRST SDEFRT ]
2)		ADD A,SE3
2)		JUMPL A,SDEF1A		;End test, try next symbol 
2)		AOS -1(P)		;Symbol not found skips on return

	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 79,70

2)	SDEFRT:	POP P,T			;Restore T
2)		POPJ P,
2)	SDEF2:	ADD A,SE3		;WFW jumps into middle of old symbol table
2)		JRST SDEF1		;search routines, we'll comply
2)	SDEFF4:	CAMN C,1(A)		;A faster loop for FORTRASH
2)		POPJ P,
2)		ADD A,SE3
2)		JUMPL A,SDEFF4
2)	IFE K,<	JRST	CPOPJ1		;SYMBOL NOT FOUND SKIPS ON RETURN>


******** ILOAD.MAC **** PAGE 87
1)	;TYPEOUT SUBROUTINE - THE CHARACTER SUPPLIED IN T IS CONVERTED TO ASCII
*** LOADER.MAC[CSP,SYS] *** PAGE 78
2)	PFWORD:	MOVNI Q,6		;PRINT FILE NAME
2)		MOVE D,LSTPT
2)	PWORD3:	ILDB T,D
2)		JUMPE T,CPOPJ
2)		PUSHJ P,TYPE
2)		AOJL Q,PWORD3
2)		POPJ P,
2)	;TYPEOUT SUBROUTINE - THE CHARACTER SUPPLIED IN T IS CONVERTED TO ASCII


******** ILOAD.MAC **** PAGE 93
1)	IFN PURESW,<DEPHASE
*** LOADER.MAC[CSP,SYS] *** PAGE 84
2)	IFN STANSW,<
2)	OPEN4:	EXP	17
2)		Z
2)		Z >
2)	IFN PURESW,<DEPHASE


******** ILOAD.MAC **** PAGE 94
1)	PDLST:	BLOCK	40
*** LOADER.MAC[CSP,SYS] *** PAGE 85
2)	GLBEND:	BLOCK 1			;Pointer to end of globals in symbol table
2)	GLBENP:	BLOCK 1			;PNTR TO ABOVE, OR TO B (SEE RHTCRK)
2)	PDLST:	BLOCK	40


******** ILOAD.MAC **** PAGE 95
1)	LSPREL:	BLOCK 1		; BY DBA AFTER JRA FOR UCI
1)	RINITL:	BLOCK 1
*** LOADER.MAC[CSP,SYS] *** PAGE 86
2)	RINITL:	BLOCK 1


	1) ILOAD.MAC vs. 2) LOADER.MAC[CSP,SYS]	SRCCOM	12-14-73	10:35	PAGES 95,86


******** ILOAD.MAC **** PAGE 96
1)		TTYL==52			;TWO TTY BUFFERS
*** LOADER.MAC[CSP,SYS] *** PAGE 87
2)	IFN STANSW, <
2)	SAVFIL:	BLOCK 4			;FILE NAME BLOCK FOR DUMP FILE >
2)		TTYL==52			;TWO TTY BUFFERS


******** ILOAD.MAC **** PAGE 97
1)	IOWDPP:	BLOCK 2>
1)	SBRNAM:	BLOCK 1
*** LOADER.MAC[CSP,SYS] *** PAGE 88
2)	IOWDPP:	BLOCK 3>
2)	SBRNAM:	BLOCK 1


******** ILOAD.MAC **** PAGE 98
1)		JRST	HIGET		;FATAL ERROR.
1)	HIRET:	JRST	0		;EXECUTE CODE IN ACC'S
1)	HIGET:	HRRZI	V,SEGBLK	;DATA FOR
*** LOADER.MAC[CSP,SYS] *** PAGE 89
2)	IFN PURESW,< JRST   HIGET >	;FATAL ERROR.
2)	IFE PURESW,< JRST REMPFL >	;FATAL ERROR.
2)	HIRET:	JRST	0		;EXECUTE CODE IN ACC'S
2)	IFN PURESW,<
2)	HIGET:	HRRZI	V,SEGBLK	;DATA FOR


******** ILOAD.MAC **** PAGE 98
1)	IFN PURESW,<HIGONE:	DEPHASE>>
1)	SUBTTL	LISP LOADER
*** LOADER.MAC[CSP,SYS] *** PAGE 89
2)	HIGONE:	DEPHASE>>
2)	SUBTTL	LISP LOADER